//回顾与复习，坚持！
public class TestDemol {
    public static void main(String[] args) {
        //1.数据类型与变量：
        //定义变量的语法格式：数据类型 变量名 = 初始值；
        int m = 10;//定义后直接赋值
        System.out.println(m);
        int m1 = 9,m2 = 20,m3 = 30;
        //注意：在一行可以定义多个相同类型的变量和

        //整形变量的定义：
        //定义一：直接在定义时给出初始值：
        int a = 5;
        System.out.println(a);
        //定义二：在定义时如果没有进行赋值，但使用前必须赋值
        int b;
        b = 7;
        System.out.println(b);
        //注意：使用方式二定义后，如果没有赋值，编译器会直接报错：

        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);
        //int类型变量所能表示的范围
        //注意：在定义int类型变量时不能超过int的范围

        //这里直接把其他类型变量的取值范围作为总结：
        System.out.println(Short.MAX_VALUE);
        System.out.println(Short.MIN_VALUE);
        //short型变量所能表示的范围
        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.MIN_VALUE);
        //long型变量所能表示的范围
        System.out.println(Byte.MAX_VALUE);
        System.out.println(Byte.MIN_VALUE);
        //byte型变量所能表示的范围

        long c = 11L;
        //一般建议：long类型变量的初始值之后＋L/l

        //浮点型变量：
        double b2 = 3.14;//双精度浮点数
        float b3 = 5.20f;//单精度浮点数,float的包装类是Float,float类型变量的初始值之后＋f

        double num = 1.2;
        System.out.println(num*num);
        //运行结果是：1.210000000002，有精度误差

        //字符型变量：
        char c1 = 'A';
        char c2 = '1';
        char c3 = '帅';
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);

        //布尔型变量：
        boolean b4 = true;
        System.out.println(b4);

        //自动类型转换（隐式）：
        int num1 = 100;
        long num2 = 1000L;
        num2 = num1;
        //可以通过编译，但若改为:
        //num1 = num2;会出现不兼容的报错
        System.out.println(num2);

        //强制转换类型：
        int num3 = 200;
        long num4 = 300;
        num3 = (int)num4;
        System.out.println(num3);

        //类型提升：
        int a1 = 35;
        long a2 = 45;
        long a3 = a1 + a2;
        //int+long->long+long,此时若赋值给int类型数据，则编译结果会报错
        System.out.println(a3);

        byte a4 = 10;
        byte a5 = 20;
        int a6 = a5 + a4;
        byte a7 =(byte) (a5 + a4);
        System.out.println(a6);
        System.out.println(a7);

        //字符串拼接：
        String s1 ="hello";
        String s2 ="World";
        System.out.println(s1+" "+s2);

        //字符串和整形数字之间进行转换：
        //int转成String:
        int num5 = 10;
        //法一：
        String str1 = num5 + "";
        System.out.println(str1);
        //法二：
        String str2 =String.valueOf(num5);
        System.out.println(str2);

        //String转换成int：
        String str ="100";
        int num6 =Integer.parseInt(str);
        System.out.println(num6);
    }
}
